﻿#include<stdio.h>
#include<string.h>
#include<cstdlib>
#include<iostream>
using namespace std;


//测试qsort函数
int com_f(const void* p1, const void* p2) {
	return *(int*)p1 - *(int*)p2;
}
void test01() {
	int arr[10] = { 5,322,56,78,73,4,6,3,456,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	qsort(arr, sz, sizeof(arr[0]), com_f);
	for (auto e : arr) {
		cout << e << ' ';
	}
}
//测试qsort函数


//用bubble排序模拟实现qsort函数
void swap(char* p1, char* p2, int size) {
	while (size--) {
		char tmp = *p1;
		*p1 = *p2;
		*p2 = tmp;
		p1++, p2++;
	}
}
void bsort(void* base, int sz, int szof, int (*cmp)(const void*, const void*)) {
	for (int i = 0; i < sz - 1; i++) {
		for (int j = 0; j < sz - i - 1; j++) {
			if (cmp((char*)base + j * szof, (char*)base + (j + 1) * szof) > 0) {
				swap((char*)base + j * szof, (char*)base + (j + 1) * szof, szof);
			}
		}
	}
}
void test02() {
	int arr[10] = { 5,322,56,78,73,4,6,3,456,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	bsort(arr, sz,sizeof(arr[0]),com_f);
	for (auto e : arr) {
		cout << e << ' ';
	}
}
//用bubble排序模拟是实现qsort函数


int main() {
	//test01();
	test02();
	return 0;
}